import request from '@/config/axios'
import {PatDetailsVO} from "@/api/ecg/common";

// 排队 VO
export interface QueueVO {
  id: number // id
  applyNo: string // 预约申请号
  episodeId: string // 就诊流水号
  patId: string // 患者编号
  patName: string // 患者姓名
  patGender: number // 患者性别
  bookTimeslot: number // 预约时间段
  bookCheckType: number // 预约检查类型
  bookSeqNum: number //预约序号
  isVip: number // 是否VIP患者
  seqNum: number // 排队序号
  status: number // 5:过号 10:排队中 15:已召回 20:候诊准备 30:就诊中 40:就诊完成
  passed: number // 过号标记
  expired: number // 预约过期标记
  jumpFlag: number //插队标记
  roomId: number // 诊室编号
  roomName: string // 诊室名称
  bedNo: string // 诊疗床编号
  patDetails: PatDetailsVO
}

// 排队 API
export const QueueApi = {
  // 查询排队分页
  getqueuePage: async (params: any) => {
    return await request.get({ url: `/ecg/queue/page`, params })
  },

  // 查询排队详情
  getqueue: async (id: number) => {
    return await request.get({ url: `/ecg/queue/get?id=` + id })
  },

  // 新增排队
  createqueue: async (data: QueueVO) => {
    return await request.post({ url: `/ecg/queue/create`, data })
  },

  // 修改排队
  updatequeue: async (data: QueueVO) => {
    return await request.put({ url: `/ecg/queue/update`, data })
  },

  // 删除排队
  deletequeue: async (id: number) => {
    return await request.delete({ url: `/ecg/queue/delete?id=` + id })
  },

  // 插队排队
  jumpQueue: async (params: QueueVO) => {
    return await request.get({ url: `/ecg/queue/patient-jump`, params })
  },

  // 导出排队 Excel
  exportqueue: async (params) => {
    return await request.download({ url: `/ecg/queue/export-excel`, params })
  },

  // 工位开通
  bedOpen: async (params) => {
    return await request.get({ url: `/ecg/queue/bed-open`, params })
  },

  // 工位关闭
  bedClose: async (params) => {
    return await request.get({ url: `/ecg/queue/bed-close`, params })
  },

  //
  resetSchedule: async () => {
    return await request.get({ url: `/ecg/queue/reset-scheduler` })
  }

}
